終於來到最後一天了,今天我們要來架設前端,不過在這之前,我希望大家能夠思考一下以下的問題:
既然鐵人賽允許使用ChatGPT,那麼是不是可以直接讓ChatGPT幫忙生成文章,然後我們只需要記得在截止時間前發文(或甚至寫一個腳本自動上傳)就能夠完成挑戰了。不過這樣的話鐵人賽還有什麼意義呢?
說是要架設前端,但是我的美感為 $\lim_{x \to \infty} \frac 1 x$ ,所以我決定靠ChatGPT來幫我生成前端的畫面。順便試一下最新的o1-preview模型的效果。
由於rate limit的因素,我只能先透過gpt-4o進行需求確認,並且整理重點後才拿去做為prompt讓o1-preview生成前端畫面。
先放幾張就好,詳細的對話紀錄可以從這個連結來查看
整理完之後的需求因為篇幅過長,所以我就不放在這邊了,直接拿去讓o1-preview生成前端畫面。中間有再根據需求調整(如這個連結所示)
接著我們需要將HTML註冊到gin的router上,這樣我們才能透過瀏覽器來訪問我們的前端頁面。首先我們需要將HTML檔案放到templates
資料夾下,CSS與JS檔案放到static
資料夾下(對,我連CSS跟JS都丟給GPT寫,出乎意料的沒有花太長時間在Debug GPT的Code),然後我們需要在gin的router上註冊這些檔案的路徑,這樣我們才能透過瀏覽器來訪問這些檔案。
mygo/main.go
package main
import (
"mygo/backend"
)
func main() {
r := backend.CreateEngine()
r.Static("/static", "./static") // 註冊靜態檔案的路徑(./static)到指定的路徑(/static)
r.LoadHTMLGlob("templates/*") // 註冊HTML檔案的路徑(./templates)到指定的路徑(templates)
r.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", nil)
})
r.Run(":8080")
}
然後就能透過http://localhost:8080/
來訪問我們的前端頁面了。想玩的可以點進去這個連結
終於結束了,這30天的挑戰真的讓我學到了很多,也感謝大家的陪伴。然後想跟大家道歉,由於這段時間突然變忙,所以有部份文章是透過ChatGPT
直接生成。
如果我這30天的文章有任何地方有錯誤請在留言區反應,也歡迎大家提供任何建議,讓我能夠更進一步的改進,讓我成為更好的Gopher。
不過由於這次透過GPT輔助來撰寫部份的Code與某幾天鐵人賽的草稿也讓我開始反思是不是如果自身實力不夠的話,會不會反而被AI取代,畢竟AI的進步速度遠遠超過人類,而且從我跟o1-preview的對話中發現它給的Code竟然不需要再debug。這也讓我開始思考未來的方向,不過這是另一個話題了。
最後想說的是,謝謝大家的陪伴,這30天真的很有趣,也很辛苦,希望大家也能夠從這30天的挑戰中學到一些東西,我們明年見(?)。